package cc.mrbird.febs.order.entity;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;

/**
 * 订单支付表 Entity
 *
 * @author Lord
 * @date 2020-06-06 17:07:09
 */
@Data
@TableName("t_order_pay")
public class OrderPay {

    /**
     * 订单id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 订单ID
     */
    @TableField("order_id")
    private Long orderId;

    /**
     * 交易流水号
     */
    @TableField("trade_sn")
    private String tradeSn;

    /**
     * 支付批量流水号，如果是多订单合并支付的情况，会有两个订单的支付合并流水号是一样的，用该流水号来批量更新订单状态
     */
    @TableField("batch_trade_sn")
    private String batchTradeSn;

    /**
     * 支付方式：0->未支付；1->支付宝；2->微信；3->银联
     */
    @TableField("pay_type")
    private Integer payType;

    /**
     * 支付金额
     */
    @TableField("pay_amount")
    private BigDecimal payAmount;
    /**
     * 支付状态（1：待付款，2：付款成功，3：付款失败，4：已提交退款申请，5：退款已完成）
     */
    @TableField("pay_status")
    private Integer payStatus;

    /**
     * 银联支付系统跟踪号，主要用来财务对账用
     */
    @TableField("trace_no")
    private String traceNo;

    /**
     * 银联支付订单发送时间，后期调用查询接口会用到
     */
    @TableField("txn_time")
    private String txnTime;

    /**
     * 银联支付查询流水号，后续调用退款接口会用到
     */
    @TableField("queryId")
    private String queryid;

    /**
     * 退款金额
     */
    @TableField("refund_amount")
    private BigDecimal refundAmount;
    /**
     * 创建时间
     */
    @TableField("createTime")
    private Date createtime;

    /**
     * 支付时间，也就是第三方支付回调的时间
     */
    @TableField("pay_time")
    private Date payTime;

    /**
     * 提交退款申请时间
     */
    @TableField("refund_apply_time")
    private Date refundApplyTime;

    /**
     * 退款已完成时间
     */
    @TableField("refund_finish_time")
    private Date refundFinishTime;

}
